package com.niiwoo.activity.stage.service.activity;

import com.niiwoo.activity.stage.dto.request.activity.ActivityPoolRequestDTO;
import com.niiwoo.activity.stage.dto.response.activity.ActivityPoolResponseDTO;
import com.niiwoo.tripod.provider.dto.response.PageResponseDTO;

/**
 * 活动奖励服务类
 */
public interface ActivityPrizePoolDubboService {
    /**
     * 添加更新商品
     *
     * @param reqDTO
     */
    void poolGoodsAddOrUpdate(ActivityPoolRequestDTO reqDTO);

    /**
     * 查看商品详情
     *
     * @param poolId
     * @return ActivityGoodsAddOrEditReqDTO
     */
	ActivityPoolResponseDTO poolGoodsDetail(Integer poolId);

    /**
     * 商品列表
     *
     * @param reqDTO
     * @return PageResponseDTO<ActivityResponseDTO>
     */
    PageResponseDTO<ActivityPoolResponseDTO> poolGooldsList(ActivityPoolRequestDTO reqDTO);

    /**
	 * 设置奖池（添加奖池商品）
	 * @param dto
	 * @return
	 */
	Integer poolPrizeAdd(ActivityPoolRequestDTO dto);

	/**
	 * 获取奖池详情
	 * @param poolId
	 * @return
	 */
	ActivityPoolResponseDTO poolPrizeDetail(Integer poolId);

	/**
	 * 奖池列表
	 * @param dto
	 * @return
	 */
	PageResponseDTO<ActivityPoolResponseDTO> poolPrizeList(ActivityPoolRequestDTO dto);

	/**
	 * 奖池修改
	 * @param dto
	 * @return
	 */
	Integer poolPrizeEdit(ActivityPoolRequestDTO dto);
	/**
	 * 奖池上架
	 * @param dto
	 * @return
	 */
	Integer poolShelf(ActivityPoolRequestDTO dto);

	/**
	 * 奖池下架
	 * @param dto
	 * @return
	 */
	Integer poolUnshelf(ActivityPoolRequestDTO dto);

	/**
	 * 奖池删除
	 * @param dto
	 * @return
	 */
	Integer poolRemove(ActivityPoolRequestDTO dto);

	/**
	 * 缝8抽奖自动上下架
	 */
	void batchShelfOrUnShelf();

	/**
	 * 获取可用的奖池（有可抽取奖品）
	 *
	 * @param activityId
	 * @param prizeId
	 * @return
	 */
	default void getActivePrizePool(Integer activityId, Integer prizeId){
		throw new UnsupportedOperationException("unimplemented");
	}
}
